#include "zf_common_headfile.h"
// 图像备份数组，在发送前将图像备份再进行发送，这样可以避免图像出现撕裂的问题
static uint8 image_copy[MT9V03X_H*MT9V03X_W];

/*
 * @函数说明：将图像数组复制一遍，并将扫线数组复制给新图像，然后打印在LCD屏幕中
 * @函数作者：吴广金
 * @时间：2024年3月9日
 * */
void myLcd_yuantu_saoxian(void)
{
    uint8 i = 0;
    uint8 j = 0;
    uint16 offset;
    // 在发送前将图像备份再进行发送，这样可以避免图像出现撕裂的问题
    for(i = 120-1 ;i > 0;i--)
    {
        offset = i*188;
        for(j = 0;j<188;j++)
        {
            //图像复制
            image_copy[offset+j] = out[(119-i)*188+j];
            //扫线情况
            if((119-i)>34&&(119-i)<82&&((119-i)%2==1))
             {
               //左右两条边线
               if(j==all_out_left[((119-i)-35)/2])
                   image_copy[offset+j] = 0xFD;
               if(j==all_out_right[((119-i)-35)/2])
                   image_copy[offset+j] = 0xFD;
               //中间边线
               if(j==all_out_scan_mid[((119-i)-35)/2])
                   if((((119-i)-35)/2)==12)
                       image_copy[offset+j] = 0xFD;
                   else
                       image_copy[offset+j] = 0;
             }
        }
    }
    tft180_displayimage03x(image_copy,128,160);
}

/*
 * @函数说明：将图像数组复制一遍，然后打印在LCD屏幕中
 * @函数作者：吴广金
 * @时间：2024年3月9日
 * */
void myLcd_yuantu(void)
{

    // 在发送前将图像备份再进行发送，这样可以避免图像出现撕裂的问题
    memcpy(image_copy, out, MT9V03X_IMAGE_SIZE);
    tft180_displayimage03x(image_copy,128,160);
}

/*
 * @函数说明：选择想要打印的图像在LCD屏幕中
 * @参数(IMAGE_LCD data):图像模式的枚举
 * @函数作者：吴广金
 * @时间：2024年3月9日
 *
 * */
void myLcdImageSend(IMAGE_LCD data)
{
    switch(data)
    {
        case YUANTU_SAOXIAN:
            myLcd_yuantu_saoxian();
            break;
        case YUANTU:
            myLcd_yuantu();
            break;
        case HEIBAITU:
            break;
        case HEIBAITU_SAOXIAN:
            break;
        default:
            break;
    }
}


